Bound Analysis of Imperative Programs with the Size-Change Abstraction
نویسندگان
چکیده
The size-change abstraction (SCA) is an important program abstraction for termination analysis, which has been successfully imple-ion for termination analysis, which has been successfully implemented in many tools for functional and logic programs. In this paper, we demonstrate that SCA is also a highly effective abstract domain for the bound analysis of imperative programs. We have implemented a bound analysis tool based on SCA for imperative programs. We abstract programs in a pathwise and context dependent manner, which enables our tool to analyze real-world programs effectively. Our work shows that SCA captures many of the essential ideas of previous termination and bound analysis and goes beyond in a conceptually simpler framework.
منابع مشابه
Bound Analysis of Imperative Programs with the Size-change Abstraction (extended version)
The size-change abstraction (SCA) is an important program abstraction for termination analysis, which has been successfully implemented in many tools for functional and logic programs. In this paper, we demonstrate that SCA is also a highly effective abstract domain for the bound analysis of imperative programs. We have implemented a bound analysis tool based on SCA for imperative programs. We ...
متن کاملInstrumentation Analysis: An Automated Method for Producing Numeric Abstractions of Heap-Manipulating Programs
A number of questions regarding programs involving heap-based data structures can be phrased as questions about numeric properties of those structures. A data structure traversal might terminate if the length of some path is eventually zero or a function to remove n elements from a collection may only be safe if the collection has size at least n. In this thesis, we develop proof methods for re...
متن کاملLOOPUS - A Tool for Computing Loop Bounds for C Programs
We describe the current state of our tool Loopus which computes loop bounds for C programs. In this one-page abstract we describe the current state of our tool Loopus which automatically computes loop bounds for C programs. Loopus can also be seen as contribution towards solving the termination problem for C programs as it provides a conceptually simpler alternative to recently proposed methods...
متن کاملFrom Termination to Complexity Analysis with Monotonicity Constraints
Intuitively, if we can prove that a program terminates, we expect some conclusion regarding its complexity. But the passage from termination proofs to complexity bounds is not always clear. In this work we consider Monotonicity Constraint Systems, a program abstraction where termination is decidable (based on the size-change termination principle). We show that these programs also have a decida...
متن کاملTermination Analysis of Imperative Programs Using Bitvector Arithmetic
Currently, nearly all methods for proving termination of imperative programs apply an unsound and incomplete abstraction by treating bitvectors and bitvector arithmetic as (unbounded) integers and integer arithmetic, respectively. This abstraction ignores the wraparound behavior caused by underand overflows in bitvector arithmetic operations. This is particularly problematic in the termination ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2011